# This Containerfile is used by openshift-ci to build the image, and push it to
# quay.io/ocs-dev/ceph-csi
#
# This image is based on the latest stable Ceph version, which uses CentOS.
#
# Note that other tests run on the latest Fedora release. That makes the binary
# that gets build not necessary compatible with the Ceph version on other
# distributions. Hence the need to rebuild the executable on the OS that will
# be used as deployment image.
#
# Ideally we use a base container that is very closely like the Red Hat Ceph
# Storage (RHCS) product. Unfortunately those container images are not publicly
# available, so we will use the latest Ceph version that is available. If we
# settle on a particular Ceph version, we might be missing out on backports
# that the RHCS product contains (and compiling might fail).

FROM docker.io/ceph/daemon-base:latest AS builder

ENV GOPATH=/go

# install dependencies
RUN dnf -y install \
        git \
        golang \
        make \
        librados-devel \
        librbd-devel \
    && dnf -y update \
    && dnf clean all \
    && true

# compile and link the executable
COPY . /go/src/github.com/ceph/ceph-csi
RUN cd /go/src/github.com/ceph/ceph-csi && make

# final container to use in deployments
FROM docker.io/ceph/daemon-base:latest

COPY --from=builder /go/src/github.com/ceph/ceph-csi/_output/cephcsi /usr/local/bin/cephcsi

RUN chmod +x /usr/local/bin/cephcsi

ENTRYPOINT ["/usr/local/bin/cephcsi"]
